home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
graphics
/
pbm
/
ppmtoraw.lzh
/
ppmtoraw.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-09-23
|
1KB
|
68 lines
/*By Terje Vernly (terjeve@ifi.uio.no)*/
#include <stdio.h>
#include <stdlib.h>
#define BUFSIZE 100*1024
SkipBlanks(FILE *f)
{
int c=0;
while (c!=' ' && c!='\t' && c!='\r' && c!='\n') c=fgetc(f);
ungetc(c,f);
}
convert(FILE *f)
{
int maxX, maxY, maxval;
int bytes_read;
char *buffer;
SkipBlanks(f);
fscanf(f,"%d",&maxX);
SkipBlanks(f);
fscanf(f,"%d",&maxY);
SkipBlanks(f);
fscanf(f,"%d",&maxval);
fgetc(f);
printf("%d %d\n",maxX,maxY);
if ((buffer=(char *) malloc(BUFSIZE))==NULL) {
fprintf(stderr,"Not enough memory.\n");
exit(1);
}
do {
bytes_read=fread(buffer,1,BUFSIZE,f);
fwrite(buffer,bytes_read,1,stdout);
} while (bytes_read==BUFSIZE);
}
main(int argc, char **argv)
{
FILE *fd;
int x,y;
if (argc!=2) {
fd=stdin;
} else {
if ((fd=fopen(argv[1],"rb"))==NULL) {
fprintf(stderr,"%s: File not found\n",argv[0]);
exit(1);
}
}
setvbuf(stdout, (char *) NULL, _IOFBF, 100*1024);
x=fgetc(fd);
y=fgetc(fd);
if (!((x=='P') && (y=='6'))) {
fprintf(stderr,"Not a RAWBITS ppm-image.\n");
exit(1);
}
convert(fd);
fclose(fd);
return 0;
}